import React, { Component, createRef } from 'react'
// react中的组件通信--父传子
//方式1: 给子组件设置动态属性, 然后再子组件中通过props 接收属性.进而使用属性

//方式2: 在的父组件中添加一个函数, 函数的返回值为当前父组件中的数据, 然后通过动态属性将
// 该该函数传递给子组件, 然后再子组件中调用, 则这样就在子组件中获取了父组件中的数据(注意this的指向问题)

// 方式3: 在子组件中定义一个方法, 该方法接收一个形参, 在父组件中通过ref 获取当前子组件的实例.
// 进而调用子组件上的这个方法, 然后传递父组件中的数据,这样子组件就拿到了父组件中的数据

import Son from './Son';
export default class Father extends Component {
    state = {
        user: {
            name: '小头爸爸'
        }
    }
    ref1 = createRef()
    render() {
        return (
            <div>
                {/* 方式1 */}
                {/* <Son user={this.state.user}></Son> */}
                {/* 方式2 */}
                {/* <Son toChildFn={this.toChildFn}></Son> */}
                {/* 方式3 */}
                <Son ref={this.ref1}></Son>
            </div>
        )
    }
    toChildFn = () => {
        return this.state.user
    }
    componentDidMount() {
        this.ref1.current.getdatafromFather(this.state.user)
    }
}
